ostree.git
11 years agotrivial: TODO: Add link for http unprivileged
Colin Walters [Fri, 23 May 2014 11:57:23 +0000 (07:57 -0400)]
trivial: TODO: Add link for http unprivileged

11 years agopackaging: BR libgsystem
Colin Walters [Thu, 22 May 2014 23:53:54 +0000 (19:53 -0400)]
packaging: BR libgsystem

11 years agoselinux-ensure-labeled: Support no arguments to just traverse deployment root
Colin Walters [Thu, 22 May 2014 23:24:39 +0000 (19:24 -0400)]
selinux-ensure-labeled: Support no arguments to just traverse deployment root

This makes it easy to use for the case where rpm-ostree-toolbox is
injecting systemd services into the deployment root, and we don't
actually need to traverse the whole FS.

11 years agoadmin switch: Allow switching just remote names
Colin Walters [Thu, 15 May 2014 12:58:44 +0000 (08:58 -0400)]
admin switch: Allow switching just remote names

This is a followup to the previous commit; for the installation media
case we want to keep the current origin ref, and only switch remotes.

11 years agoadmin switch: Support switching remotes as well
Colin Walters [Mon, 12 May 2014 20:57:46 +0000 (16:57 -0400)]
admin switch: Support switching remotes as well

Say I have an installation from CDROM; the remote name may be
"installmedia" or something like that.  We want to allow also
switching remotes.

11 years agobuild: Add missing DESTDIR
Colin Walters [Fri, 9 May 2014 13:06:59 +0000 (09:06 -0400)]
build: Add missing DESTDIR

Hooray for read-only bind mounts and building as non-root.

11 years agoSupport /etc/ostree/remotes.d
Colin Walters [Thu, 8 May 2014 13:16:36 +0000 (09:16 -0400)]
Support /etc/ostree/remotes.d

For many OS install scenarios, one runs through an installer which may
come with embedded data, and then the OS is configured post-install to
receive updates.

In this model, it'd be nice to avoid the post-install having to rewrite
the /ostree/repo/config file.

Additionally, it feels weird for admins to interact with "/ostree" -
let's make the system feel more like Unix and have our important
configuration in /etc.

https://bugzilla.gnome.org/show_bug.cgi?id=729343

11 years agotrivial-httpd: flush after writing the port to stdout
Owen W. Taylor [Mon, 5 May 2014 22:58:01 +0000 (18:58 -0400)]
trivial-httpd: flush after writing the port to stdout

The option --port-file=- is most useful when the stdout of the daemon
is programatically redirected and not going to a terminal. The
flush-after-a-line behavior of stdout is specific to terminals, so
we need an explicit flush.

https://bugzilla.gnome.org/show_bug.cgi?id=729609

11 years agopull: Add tls-client-cert-{path,key} (if we have new enough libsoup)
Colin Walters [Thu, 1 May 2014 16:55:13 +0000 (12:55 -0400)]
pull: Add tls-client-cert-{path,key} (if we have new enough libsoup)

This is an actually working version of client-side certificates.
Depends on:
See: https://bugzilla.gnome.org/show_bug.cgi?id=334021

We detect whether libsoup is new enough for this.

https://bugzilla.gnome.org/show_bug.cgi?id=729356

11 years agoRevert "pull: Add tls-client-cert-{path,key}"
Colin Walters [Thu, 1 May 2014 14:23:11 +0000 (10:23 -0400)]
Revert "pull: Add tls-client-cert-{path,key}"

This reverts commit 94f9ee7bcedaf29ed3d84aacaada50aac7644415.
Doesn't actually work, see
https://bugzilla.gnome.org/show_bug.cgi?id=334021

11 years agopull: Add tls-client-cert-{path,key}
Colin Walters [Thu, 1 May 2014 11:57:06 +0000 (07:57 -0400)]
pull: Add tls-client-cert-{path,key}

These can be used to present a client certificate when making requests
to a repository.

11 years agopull: Correctly handle error state when fetching optional data
Colin Walters [Tue, 29 Apr 2014 13:02:43 +0000 (09:02 -0400)]
pull: Correctly handle error state when fetching optional data

For the static deltas work, we're using the already-extant internal
API to perform a HTTP fetch for optional data - static deltas are
optional.

Except that we didn't correctly unset the error if we were doing an
optional fetch and the data wasn't found.

11 years agopull: Stay in mainloop if we're synchronously fetching URI
Colin Walters [Tue, 29 Apr 2014 13:00:21 +0000 (09:00 -0400)]
pull: Stay in mainloop if we're synchronously fetching URI

The static deltas work will be doing some synchronous fetching even
after refs are downloaded.

11 years agodeltas: Link to liblzma, add internal API to use it
Colin Walters [Tue, 29 Apr 2014 12:56:05 +0000 (08:56 -0400)]
deltas: Link to liblzma, add internal API to use it

For future static deltas work, we'll be linking to liblzma.  Since
it's fairly widespread, let's just make it a hard dependency.

11 years agolibostree: Add _finish() API to async progress
Colin Walters [Tue, 29 Apr 2014 12:54:39 +0000 (08:54 -0400)]
libostree: Add _finish() API to async progress

Since OstreeAsyncProgress queues to the mainloop, we might "lose" the
last message.  Give callers a way to force a flush.

11 years agootutil: Correctly add ref to bytes when creating GVariant
Colin Walters [Tue, 29 Apr 2014 12:53:28 +0000 (08:53 -0400)]
otutil: Correctly add ref to bytes when creating GVariant

This one went undiscovered for a while because it turned out we
weren't using it...

11 years agocore: Add _STRING variants of GVariant object formats
Colin Walters [Sun, 27 Apr 2014 20:32:17 +0000 (16:32 -0400)]
core: Add _STRING variants of GVariant object formats

For the static deltas work, we're going to embed a commit in the delta
superblock, so we need a format string without the G_VARIANT_TYPE().

11 years agoshow: Fix segfault if we can't find an object
Colin Walters [Sun, 27 Apr 2014 20:31:50 +0000 (16:31 -0400)]
show: Fix segfault if we can't find an object

We need to use the original rev here.

11 years agolibotutil: Fix two bugs in usage of posix_fallocate()
Colin Walters [Tue, 29 Apr 2014 11:40:25 +0000 (07:40 -0400)]
libotutil: Fix two bugs in usage of posix_fallocate()

* It's invalid to call it with a size of 0, so don't do that.

* posix_* apparently don't set errno.  So capture the return value and
  use that.

11 years agocore: Use posix_fallocate() when writing objects
Colin Walters [Mon, 28 Apr 2014 23:42:12 +0000 (19:42 -0400)]
core: Use posix_fallocate() when writing objects

This helps ensure the filesystem allocates space efficiently.

11 years agoos-init: don't create /var/log/journal on deploy
Cosimo Cecchi [Tue, 22 Apr 2014 22:36:03 +0000 (15:36 -0700)]
os-init: don't create /var/log/journal on deploy

Leave the policy of whether to persistently store journal logs to the
system integrator when the default journald configuration is in use.

https://bugzilla.gnome.org/show_bug.cgi?id=728762

11 years agobuild: Remove --enable-embedded-dependencies
Colin Walters [Tue, 22 Apr 2014 13:08:35 +0000 (09:08 -0400)]
build: Remove --enable-embedded-dependencies

This is going to bitrot too much; we'll figure out a better way to do
this when someone if a RHEL6 port ever happens.  Probably Software
Collections.

11 years agoRelease 2014.4
Colin Walters [Sun, 13 Apr 2014 17:50:27 +0000 (10:50 -0700)]
Release 2014.4

11 years agodeploy: fsync() copy of /etc
Colin Walters [Wed, 9 Apr 2014 00:18:44 +0000 (20:18 -0400)]
deploy: fsync() copy of /etc

This unfortunately requires reimplementing gs_shutil_cp_a(), except
while we're here, we also use the *at calls.

11 years agodeploy: fsync() kernel/initramfs and bootloader config parent directories
Colin Walters [Tue, 8 Apr 2014 22:40:33 +0000 (18:40 -0400)]
deploy: fsync() kernel/initramfs and bootloader config parent directories

Ensure they've hit disk.

11 years agodeploy: fdatasync() bootloader configuration files
Colin Walters [Tue, 8 Apr 2014 22:48:08 +0000 (18:48 -0400)]
deploy: fdatasync() bootloader configuration files

Yet more data we're writing out that needs to be sync'd.

11 years agolibotutil: Make use of dirfd-relative API in ot_gfile_replace_contents_fsync()
Colin Walters [Tue, 8 Apr 2014 22:31:33 +0000 (18:31 -0400)]
libotutil: Make use of dirfd-relative API in ot_gfile_replace_contents_fsync()

It's just more efficient.

11 years agodeploy: Ensure .origin file is fsync()ed on disk
Colin Walters [Tue, 8 Apr 2014 22:21:19 +0000 (18:21 -0400)]
deploy: Ensure .origin file is fsync()ed on disk

Along with its parent directory.

11 years agodeploy: Also fsync parent directory of modified config files
Colin Walters [Tue, 8 Apr 2014 21:41:28 +0000 (17:41 -0400)]
deploy: Also fsync parent directory of modified config files

11 years agodeploy: Ensure that any modified config files are fsync()d
Colin Walters [Tue, 8 Apr 2014 21:37:35 +0000 (17:37 -0400)]
deploy: Ensure that any modified config files are fsync()d

It really wouldn't do for one to be missing one's ssh keys for
example...

11 years agocheckout: fsync() directory on checkouts
Colin Walters [Tue, 8 Apr 2014 21:31:17 +0000 (17:31 -0400)]
checkout: fsync() directory on checkouts

We want to be really sure that our deployment roots have hit the disk.

11 years agodeploy: Ensure that all directories we create are fsync()d
Colin Walters [Tue, 8 Apr 2014 21:24:07 +0000 (17:24 -0400)]
deploy: Ensure that all directories we create are fsync()d

There's two halves to this; first, when we create an hierarchy, we
need to call fsync().  Second, we need to fsync again anytime after
we've modified a directory.

11 years agolibotutil: Add API to create directory hierarchy recursively *and* fsync
Colin Walters [Tue, 8 Apr 2014 21:22:38 +0000 (17:22 -0400)]
libotutil: Add API to create directory hierarchy recursively *and* fsync

To be really sure that any directory entries have hit disk we need to
call fsync() on the directory fd.  This API allows us to conveniently
create a directory hierarchy, fsyncing all of it along the way.

11 years agopull: Display download progress of individual objects as we get it
Colin Walters [Fri, 11 Apr 2014 05:31:14 +0000 (01:31 -0400)]
pull: Display download progress of individual objects as we get it

It was kind of annoying at least for rpm-ostree upgrades since /boot
happens to be first and we eat a 21MB initramfs with no download
progress.

https://bugzilla.gnome.org/show_bug.cgi?id=726348

11 years agolibotutil: Fix mistaken return of TRUE in error path
Colin Walters [Tue, 8 Apr 2014 22:15:52 +0000 (18:15 -0400)]
libotutil: Fix mistaken return of TRUE in error path

Gah, must have been a refactoring bug.

12 years agoUse external libgsystem 2014.2
Colin Walters [Fri, 4 Apr 2014 20:52:36 +0000 (16:52 -0400)]
Use external libgsystem 2014.2

It's been split off for a while, let's kill the code duplication.

Among other things, this fixes the systemd detection for the journal
logging.

12 years agoswitch: Always allow chronological downgrades
Colin Walters [Fri, 4 Apr 2014 20:51:37 +0000 (16:51 -0400)]
switch: Always allow chronological downgrades

Ideally we'd have something a bit more strict, but...without
downloading the parentage, this is all we can do at the moment.

12 years agodeploy: Call fsync() on parent directory before/after symlink swap
Colin Walters [Fri, 4 Apr 2014 02:39:41 +0000 (22:39 -0400)]
deploy: Call fsync() on parent directory before/after symlink swap

Let's be conservative here and try hard to ensure the symlink has the
correct content on disk.

12 years agobootloader: fdatasync() bootloader configuration
Colin Walters [Fri, 4 Apr 2014 02:20:59 +0000 (22:20 -0400)]
bootloader: fdatasync() bootloader configuration

Let's be a bit more conservative here and actually fdatasync() the
configurations we're generating.

I'm seeing an issue at the moment where syslinux isn't finding the
config sometimes, and while I don't think this is the issue, let's try
it.

12 years agobootloaders: Always write out bootloader config file
Colin Walters [Fri, 4 Apr 2014 01:08:03 +0000 (21:08 -0400)]
bootloaders: Always write out bootloader config file

There was an attempted optimization to only write if changed, but this
is broken - we always write the bootloader config into a new
directory.

In theory we should only be writing if it changed, but let's not do a
broken optimization.

12 years agodeploy: Add a debug message for which bootloader is used
Colin Walters [Thu, 3 Apr 2014 23:39:07 +0000 (19:39 -0400)]
deploy: Add a debug message for which bootloader is used

Debugging something...

12 years agodeploy: Add an assertion that deployment directory exists
Colin Walters [Thu, 3 Apr 2014 22:29:07 +0000 (18:29 -0400)]
deploy: Add an assertion that deployment directory exists

I may be seeing something going wrong in rpm-ostree, just adding this
assertion for my own sanity.

12 years agotool: End status line after pull
Colin Walters [Thu, 3 Apr 2014 12:04:32 +0000 (08:04 -0400)]
tool: End status line after pull

Otherwise we potentially get overlapped output.

12 years agofetcher: Honor http_proxy environment variable
Colin Walters [Tue, 1 Apr 2014 23:12:39 +0000 (19:12 -0400)]
fetcher: Honor http_proxy environment variable

https://bugzilla.gnome.org/show_bug.cgi?id=706809

12 years agocheckout: Always do chmod even in _MODE_USER
Colin Walters [Tue, 1 Apr 2014 17:07:17 +0000 (13:07 -0400)]
checkout: Always do chmod even in _MODE_USER

The previous commit here changed things so that we do mkdir(x, 0700),
then fchmod later only if we created the directory.

However the logic was incorrect; we still need to chmod even in
MODE_USER if we created the directory.

12 years agotools: Fix unintialized variables
Colin Walters [Tue, 1 Apr 2014 14:00:18 +0000 (10:00 -0400)]
tools: Fix unintialized variables

12 years agoupgrade: Support --allow-downgrade again
Colin Walters [Tue, 1 Apr 2014 02:27:34 +0000 (22:27 -0400)]
upgrade: Support --allow-downgrade again

This was unintentially dropped with the OstreeSysrootUpgrader rebase.

12 years agosysroot-upgrader: Check merge deployment, not ref for differences
Colin Walters [Mon, 31 Mar 2014 18:41:13 +0000 (14:41 -0400)]
sysroot-upgrader: Check merge deployment, not ref for differences

Otherwise this broke atomicity; we could fetch/store the ref, then
crash, and then not upgrade the next time we tried upgrading.

The correct model is: the tree has changed if the new ref is different
from the merge deployment.

12 years agoostree(1): Document GPG verification, link to ostree.repo(5)
Colin Walters [Sun, 30 Mar 2014 23:37:17 +0000 (19:37 -0400)]
ostree(1): Document GPG verification, link to ostree.repo(5)

12 years agodoc: Add ostree.repo and ostree.repo-config manual pages
Colin Walters [Sun, 30 Mar 2014 23:32:50 +0000 (19:32 -0400)]
doc: Add ostree.repo and ostree.repo-config manual pages

In particular I wanted to document gpg-verify.

12 years agosysroot: Be more conservative with bootlink optimization
Colin Walters [Sat, 29 Mar 2014 01:06:22 +0000 (21:06 -0400)]
sysroot: Be more conservative with bootlink optimization

Trying to implement "rpm-ostree rollback", in the case where we have 2
deployments with the same bootconfig that we're reordering, we need to
write bootconfig, not just swap the bootlinks.

12 years agotool: End status line in switch/upgrade too
Colin Walters [Thu, 27 Mar 2014 11:45:13 +0000 (07:45 -0400)]
tool: End status line in switch/upgrade too

12 years agolibostree/upgrader: Don't pull if there is no remote
Colin Walters [Thu, 27 Mar 2014 11:36:50 +0000 (07:36 -0400)]
libostree/upgrader: Don't pull if there is no remote

In this case we're just reading the local repo.

12 years agolibostree/upgrader: Add an API to retrieve an origin description
Colin Walters [Tue, 25 Mar 2014 20:46:24 +0000 (16:46 -0400)]
libostree/upgrader: Add an API to retrieve an origin description

This will be used by "rpm-ostree upgrade".

12 years agolibostree/upgrader: Throw an error if osname is empty
Colin Walters [Tue, 25 Mar 2014 19:47:20 +0000 (15:47 -0400)]
libostree/upgrader: Throw an error if osname is empty

This shouldn't happen; I'm just adding the check to force a rebuild.

12 years agoAdd an OstreeSysrootUpgrader API
Colin Walters [Sun, 23 Mar 2014 12:54:28 +0000 (08:54 -0400)]
Add an OstreeSysrootUpgrader API

This moves some utility code from the ostree tool into the shared
library, which will make it easier to consume by external tools.

12 years agoMove basic commit API into ostree_sysroot_simple_write_deployment()
Colin Walters [Sun, 23 Mar 2014 15:36:09 +0000 (11:36 -0400)]
Move basic commit API into ostree_sysroot_simple_write_deployment()

The admin commands had this shared in tool common, but we want to
encourage external programs to do this as well.

12 years agoAdd missing admin commands in the man pages
Michael Scherer [Sat, 22 Mar 2014 10:45:45 +0000 (11:45 +0100)]
Add missing admin commands in the man pages

12 years agoimprove consistency with others admin commands
Michael Scherer [Sat, 22 Mar 2014 10:14:24 +0000 (11:14 +0100)]
improve consistency with others admin commands

12 years agoFix typo in man page ( envrionment => environment )
Michael Scherer [Sat, 22 Mar 2014 10:13:44 +0000 (11:13 +0100)]
Fix typo in man page ( envrionment => environment )

12 years agoRelease 2014.3
Colin Walters [Fri, 21 Mar 2014 18:54:03 +0000 (14:54 -0400)]
Release 2014.3

12 years agopull: Don't print, just use progress callback
Colin Walters [Fri, 21 Mar 2014 18:52:56 +0000 (14:52 -0400)]
pull: Don't print, just use progress callback

More work on removing g_print() from the library.

12 years agopull: End status line on error as well
Colin Walters [Mon, 17 Mar 2014 23:39:59 +0000 (19:39 -0400)]
pull: End status line on error as well

This way we don't append the error to the current line.

12 years agocore: Add "admin instutil set-kargs"
Colin Walters [Mon, 17 Mar 2014 23:24:56 +0000 (19:24 -0400)]
core: Add "admin instutil set-kargs"

This will be used by Anaconda as a convenience command to set the
bootloader arguments.

12 years agolibostree: Add ostree_sysroot_deployment_set_kargs()
Colin Walters [Mon, 17 Mar 2014 23:24:10 +0000 (19:24 -0400)]
libostree: Add ostree_sysroot_deployment_set_kargs()

It turns out people sometimes want to be able to change the kernel
arguments.  Add a convenient API to do so for the current deployment.

This will be used by Anaconda.

12 years agolibostree: Fix ostree_deployment_clone() to also clone bootconfig
Colin Walters [Mon, 17 Mar 2014 23:21:39 +0000 (19:21 -0400)]
libostree: Fix ostree_deployment_clone() to also clone bootconfig

This way one can easily mutate it for a new deployment list.

12 years agolibostree: Add ostree_bootconfig_parser_clone()
Colin Walters [Mon, 17 Mar 2014 23:21:05 +0000 (19:21 -0400)]
libostree: Add ostree_bootconfig_parser_clone()

This will be necessary to fix ostree_deployment_clone(), but is
potentially useful on its own for other consumers.

12 years agoAdd "ostree admin instutil", move selinux-ensure-labeled there
Colin Walters [Mon, 17 Mar 2014 16:28:36 +0000 (12:28 -0400)]
Add "ostree admin instutil", move selinux-ensure-labeled there

There are going to be a few utilities that are only useful for
installers and disk image creation tools.  Let's not expose them all
at the toplevel; instead, hide them under "instutil".

12 years agotest-sysroot: Use GSystem to spawn subprocess
Colin Walters [Wed, 19 Mar 2014 13:13:28 +0000 (09:13 -0400)]
test-sysroot: Use GSystem to spawn subprocess

I was getting a weird hang in the installed tests with the shell as a
zombie process, not reaped by the parent, which was just stuck in
select() on the output pipes.  The thing is we don't actually want to
capture stdout/stderr, we just want to inherit.

GSystem.Subprocess makes that possible, so let's just use it now that
it's a proper installed library.

12 years agoRevert "Disable test-sysroot.test"
Colin Walters [Wed, 19 Mar 2014 13:15:29 +0000 (09:15 -0400)]
Revert "Disable test-sysroot.test"

This reverts commit 73868a96d14fa13e69d9df778d2363b89f41fef5.

12 years agoDisable test-sysroot.test
Vadim Rutkovsky [Wed, 19 Mar 2014 12:08:37 +0000 (13:08 +0100)]
Disable test-sysroot.test

It hangs on test-sysroot.js:40 during GLib.spawn_command_line_sync - it seems it can't
handle sh -c and the inner process becomes a zombie

12 years agoTODO: update
Colin Walters [Sat, 15 Mar 2014 23:05:52 +0000 (19:05 -0400)]
TODO: update

12 years agoRemove custom SELinux policy
Colin Walters [Sat, 15 Mar 2014 17:15:58 +0000 (13:15 -0400)]
Remove custom SELinux policy

This was a temporary hack until the requisite bits landed upstream in
the Fedora SELinux policy.

12 years agolibostree: Fix crash if output is not a tty
Colin Walters [Sat, 15 Mar 2014 01:59:35 +0000 (21:59 -0400)]
libostree: Fix crash if output is not a tty

This was a recent regression.

12 years agolibostree: Add API to append a GPG signature
Colin Walters [Sat, 15 Mar 2014 01:57:47 +0000 (21:57 -0400)]
libostree: Add API to append a GPG signature

This will be used by rpm-ostree which needs to use an external program
to sign commits.

12 years agolibostree: Add a better error if we fail to read keyring directory
Colin Walters [Fri, 14 Mar 2014 18:42:45 +0000 (14:42 -0400)]
libostree: Add a better error if we fail to read keyring directory

I had accidentally put it in the -devel package and not noticed.

12 years agoadmin: selinux-ensure-labeled: new builtin
Colin Walters [Thu, 13 Mar 2014 12:14:26 +0000 (08:14 -0400)]
admin: selinux-ensure-labeled: new builtin

Code like rpm-ostree generates disk images directly.  In order to
ensure SELinux labeling is correct, it currently has a helper program
that runs over the deployment root, then over the whole disk and to
only set a label if none exist.

In order to make it easier to write installers such as Anaconda
without having them depend on rpm-ostree (or whatever other
build-server side program), pull in the helper code here.

12 years agodeploy: Less usage of g_print
Colin Walters [Tue, 11 Mar 2014 17:16:37 +0000 (13:16 -0400)]
deploy: Less usage of g_print

No need to spam the console here.

12 years agolibostree: Remove g_print() from bootloader code
Colin Walters [Tue, 11 Mar 2014 17:15:57 +0000 (13:15 -0400)]
libostree: Remove g_print() from bootloader code

No need to be so chatty.

12 years agopull: Drop some g_print(), replace others with async progress
Colin Walters [Tue, 11 Mar 2014 13:36:54 +0000 (09:36 -0400)]
pull: Drop some g_print(), replace others with async progress

We shouldn't g_print() from a library, particularly when the
expectation is that the client has an async progress set up.

This should fix the pull output extending the status line.

12 years agopull: Ensure temporary data that appears corrupted is deleted
Colin Walters [Sat, 8 Mar 2014 00:30:01 +0000 (19:30 -0500)]
pull: Ensure temporary data that appears corrupted is deleted

If a MITM attacker (or just network corruption) causes a temporary
downloaded object in tmp/ to be corrupted, we'll end up
continually trying to commit it, and fail.

Fix this unlinking the temp file immediately after opening it.  This
will ensure that if we exit due to an error (or crash), the kernel
will clean up the space for us.

https://bugzilla.gnome.org/show_bug.cgi?id=725924

12 years agopackaging: Update internal spec file
Colin Walters [Sat, 1 Mar 2014 20:46:03 +0000 (15:46 -0500)]
packaging: Update internal spec file

12 years agobuild: Add --enable-selinux-custom-policy
Colin Walters [Sat, 1 Mar 2014 20:10:39 +0000 (15:10 -0500)]
build: Add --enable-selinux-custom-policy

Don't use this.

It's just for me, and only temporarily until this stuff all lands in
the Fedora (and ideally upstream) selinux-policy.

12 years agoRelease 2014.2
Colin Walters [Sat, 1 Mar 2014 18:55:55 +0000 (13:55 -0500)]
Release 2014.2

12 years agoAdd /run/ostree-booted
Colin Walters [Fri, 28 Feb 2014 08:48:23 +0000 (03:48 -0500)]
Add /run/ostree-booted

The idea with this is that things like yum should be able to look for
it and determine whether or not they should assume that they can
change things on the system.

https://bugzilla.gnome.org/show_bug.cgi?id=725380

12 years agoupgrade/switch: Fix status line being overwritten with pull progress
Colin Walters [Thu, 27 Feb 2014 21:25:33 +0000 (16:25 -0500)]
upgrade/switch: Fix status line being overwritten with pull progress

12 years agocheckout: Use fd-relative open of newly created directory
Colin Walters [Thu, 27 Feb 2014 16:49:49 +0000 (11:49 -0500)]
checkout: Use fd-relative open of newly created directory

We were walking the full path again on our directories, no need to do
that.

12 years agocheckout: Only fchown/fchmod directories after we're done populating them
Colin Walters [Thu, 27 Feb 2014 16:19:33 +0000 (11:19 -0500)]
checkout: Only fchown/fchmod directories after we're done populating them

See https://mail.gnome.org/archives/ostree-list/2014-February/msg00020.html

12 years agoUpdate libgsystem, use it to set dirfd-relative xattrs on symlinks
Colin Walters [Wed, 26 Feb 2014 21:34:37 +0000 (16:34 -0500)]
Update libgsystem, use it to set dirfd-relative xattrs on symlinks

This is a bit more efficient in that we're not walking full paths, and
it helps avoid security/reliability issues if an attacker (or just a
misbehaving process) has the ability to mutate paths in the middle.

12 years agoupgrade: Properly set origin_refspec variable for resolve/printing
Colin Walters [Wed, 26 Feb 2014 20:12:46 +0000 (15:12 -0500)]
upgrade: Properly set origin_refspec variable for resolve/printing

1) We were ignoring the remote, which is broken
2) We were printing NULL later on

12 years agoswitch: Don't check whether revision matches
Colin Walters [Wed, 26 Feb 2014 20:12:08 +0000 (15:12 -0500)]
switch: Don't check whether revision matches

It's quite possible that say "buildmaster" and "smoketested" are the
same revision - but we should allow switching between them.

12 years agopull: Remove explicit threading
Colin Walters [Fri, 21 Feb 2014 17:56:41 +0000 (12:56 -0500)]
pull: Remove explicit threading

Mixing async and threads has proved to be too much for my little mind.
It has race conditions that I've tried repeatedly to fix, but failed.

The threading here was scanning metadata objects - and there are
two parts to that:

1) Physically loading them from disk
2) Parsing them

Now #1 has been partially addressed by avoiding a storm of lstat() if
we're starting from a known working state.  If pull gets interrupted,
then we do need to rescan all objects.  Also, we can address this with
local metadata packfiles.

The other potentially slow bit is that we recurse across the metadata,
blocking the main thread.  We could ameliorate that in the future by
scheduling metadata parsing as idle "chunks".

Anyways, let's move the needle back to reliability, and readd speed
more carefully.

https://bugzilla.gnome.org/show_bug.cgi?id=706456

12 years agoupgrade: Refuse chronologically older commits unless --allow-downgrade
Colin Walters [Thu, 20 Feb 2014 23:25:56 +0000 (18:25 -0500)]
upgrade: Refuse chronologically older commits unless --allow-downgrade

We don't want to allow MITM attackers to intercept upgrade requests
and provide clients with older OS versions vulnerable to security
flaws.

Only "ostree admin upgrade" gets this behavior for now - whether we
want to do it for "ostree admin switch" is another question.

12 years agorepo: Fix crash without SELinux policy enabled during commit
Colin Walters [Thu, 20 Feb 2014 19:19:49 +0000 (14:19 -0500)]
repo: Fix crash without SELinux policy enabled during commit

12 years agobuild: Fix build without SELinux
Colin Walters [Thu, 20 Feb 2014 15:12:53 +0000 (10:12 -0500)]
build: Fix build without SELinux

12 years agolibostree: Split off SELinux OstreeSePolicy class
Colin Walters [Wed, 19 Feb 2014 13:40:29 +0000 (08:40 -0500)]
libostree: Split off SELinux OstreeSePolicy class

It's better if this is independent from the OstreeSysroot; for
example, a policy is active in a given deployment root at once, not
for a sysroot globally.

We can also collect SELinux-related API in one place.

Unfortunately at the moment there can be only one instance of this
class per process.

12 years agoAdd internal SELinux policy overrides
Colin Walters [Wed, 19 Feb 2014 13:37:54 +0000 (08:37 -0500)]
Add internal SELinux policy overrides

In the future, this will likely include an ostree_t domain.  For now,
this is just a few additional allow rules.

12 years agomanual-tests: New directory with custom test scripts
Colin Walters [Fri, 14 Feb 2014 23:16:10 +0000 (18:16 -0500)]
manual-tests: New directory with custom test scripts

This is just a demo script.

12 years agofetcher: set timeouts on HTTP connections
Daniel Drake [Thu, 13 Feb 2014 16:57:10 +0000 (10:57 -0600)]
fetcher: set timeouts on HTTP connections

We're seeing some hangs while ostree is fetching updates.
I imagine the fact that SoupSessionAsync has no timeout by default
could be the cause of this.

Set timeout values to 60 seconds, which is the default for the new
SoupSession API which we may switch to later.

https://bugzilla.gnome.org/show_bug.cgi?id=724310

12 years agobuild: make "sudo make install" over existing install work
Colin Walters [Thu, 13 Feb 2014 15:57:05 +0000 (10:57 -0500)]
build: make "sudo make install" over existing install work